1. Technical Field
The present invention relates to a system and method for enabling micro-partitioning in a multi-threaded processor. More particularly, the present invention relates to a system and method for permitting different partitions to simultaneously utilize a processor's different hardware threads by concatenating partition identifiers with virtual page identifiers within the processor's translation lookaside buffer.
2. Description of the Related Art
Today's processors include multiple hardware threads for simultaneously executing tasks. In addition, processors dynamically reconfigure their resources into “partitions” using a shared resource pool. These partitions invoke jobs (processes) that, in turn, execute on one of the hardware threads.
A challenge found, however, is that today's processors do not allow different partitions to simultaneously utilize different hardware threads. At any given time, only jobs originating from one partition may execute on multiple threads. For example, partition A may invoke jobs 1, 2, and 3 that may simultaneously execute on hardware threads X, Y, and Z. However, jobs originating from different partitions (e.g., partition A, partition B, partition C) are not able to simultaneously execute on different hardware threads due to existing address translation limitations. As such, a processor's multi-threaded capability is wasted when a particular partition does not utilize all of a processor's hardware threads.
What is needed, therefore, is a system and method for enabling jobs originating from different partitions to simultaneously execute on a multiple hardware thread processor.